package com.providersave.service;

import pojo.StockInfo;

import java.util.List;

public interface StockInfoService {
    /**
     * 添加库存信息
     * @param stockInfo
     * @return
     */
    boolean addStockInfo(StockInfo stockInfo);

    /**
     * 删除库存信息
     * @param id
     * @return
     */
    boolean removeStockInfo(Long id);

    /**
     * 修改库存信息
     * @param stockInfo
     * @return
     */
    boolean modifyStockInfo(StockInfo stockInfo);

    /**
     * 按条件分页查询库存信息
     * @param stockInfo
     * @param pageIndex
     * @param pageSize
     * @return
     */
    List<StockInfo> findStockInfoPagingByCondition(StockInfo stockInfo, Integer pageIndex, Integer pageSize);

    /**
     * 按条件查询库存信息总记录数
     * @param stockInfo
     * @return
     */
    Integer findStockInfoCountByCondition(StockInfo stockInfo);

    /**
     * 分页查询所有可用的库存信息
     * @param pageIndex
     * @param pageSize
     * @return
     */
    List<StockInfo> findUsableStockInfoPaging(Integer pageIndex,Integer pageSize);

    /**
     * 查询可用库存信息的总记录数
     * @return
     */
    Integer findUsableStockInfoCount();

    /**
     * 根据商品Id查询可用库存信息
     * @param goodsId
     * @return
     */
    List<StockInfo> findStockInfoByGoodsId(Long goodsId);

    /**
     * 根据仓库和商品查询指定库存信息
     * @param warehouseId
     * 仓库Id
     * @param goodsId
     * 商品Id
     * @return
     */
    StockInfo findStockInfoByWarehouseAndGoods(Long warehouseId,Long goodsId);
}
